package com.mengniu.commerce.sync.api.domain;

import lombok.Data;

import java.util.List;

@Data
public class BaseMnItemModel {

    /**
     * 商品类目
     */
    private String leafCategoryId;

    /**
     * 商品标题
     */
    private String itemTitle ;

    /**
     * 商品副标题
     */
    private String subdescription;

    /**
     * 商品简介
     */
    private String memo;

    /**
     * 商品类型 0：实物商品 1:虚拟商品
     */
    private String itemType;

    /**
     * 商品卖点1
     */
    private String salePoints1;

    /**
     * 商品卖点2
     */
    private String salePoints2;

    /**
     * 商品卖点3
     */
    private String salePoints3;

    /**
     * 商品图片信息
     */
    private List<Image> imageList;

    /**
     * 视频列表
     */
    private List<Video> videoList;

    /**
     * 商品文描,富文本格式
     */
    private String description;

    /**
     * 后台类目描述属性
     */
    private List<ItemPropertyValue> itemPropertyValueList;

    /**
     * 自营类型 1:自营本业 2:自营非本业
     */
    private String selfSupportType;

    /**
     * 是否可以预定 0:否 1:是
     */
    private String allowBooking;

    /**
     * 可用范围 1:普通商品 2:赠品
     */
    private String saleRange;

    /**
     * 支付方式 6:积分 7:现金 8:积分+现金
     */
    private String payType;

    /**
     * 支持履约方式 1:快递配送 2:同城配送 3:门店自提
     */
    private List<String> supportDeliveryType;

    /**
     * 选购方式 1:消费者可购 2:员工可购
     */
    private List<String> saleRule;

    /**
     * 是否可被搜索展示 0:否 1:是
     */
    private String allowSearch;

    /**
     * 新客专享 0:否 1:是
     */
    private String newExclusive;

    /**
     * 是否允许售后 0:否 1:是
     */
    private String allowAfterSale;

    /**
     * 是否支持7天无理由退货 0:否 2:是
     */
    private String returnPolicy;

    /**
     * 店铺配置
     */
    private List<StoreConfig> storeConfig;

    /**
     * 商品规格sku
     */
    private List<Sku> skuList;

    /**
     * 来源系统
     */
    private String fromSys;

    @Data
    public static class Image {

        /**
         * url
         */
        private String url;

        /**
         * 位置信息
         */
        private Integer position;

        /**
         * 是否主图
         */
        private String major;
    }

    @Data
    public static class Video {

        /**
         * url
         */
        private String url;

        /**
         * 位置信息
         */
        private Integer position;

        /**
         * 是否主图
         */
        private String major;
    }

    @Data
    public static class ItemPropertyValue {

        /**
         * 属性项id
         */
        private String propertyId;

        /**
         * 属性项文本
         */
        private String propertyText;

        /**
         * 属性值id
         */
        private String valueId;

        /**
         * 属性值文本
         */
        private String valueText;
    }

    @Data
    public static class StoreConfig {

        /**
         * 店铺编码
         */
        private String storeCode;

        /**
         * 初始库存
         */
        private Integer initInvQuantity;

        /**
         * 最小折扣
         */
        private String minimumDiscount;
    }

    @Data
    public static class Sku {

        /**
         * 产品ID
         */
        private String productId;

        /**
         * 销售价
         */
        private Integer price;

        /**
         * sku图片
         */
        private List<Image> imageList;

        /**
         * sku销售属性
         */
        private List<ItemPropertyValue> salePropertyValueList;

        /**
         * sku配置
         */
        private SkuConfig skuConfig;

        @Data
        public static class SkuConfig {

            /**
             * 商品类目
             */
            private String orderSaleCount;

            /**
             * 商品类目
             */
            private String weight;

            /**
             * 商品类目
             */
            private String volume;

            /**
             * 商品类目
             */
            private String minRefPrice;

            /**
             * 商品类目
             */
            private String costPrice;

            /**
             * 商品类目
             */
            private String tagPrice;

            /**
             * 商品类目
             */
            private String staffPrice;

            /**
             * 商品类目
             */
            private String redLinePrice;

            /**
             * 商品类目
             */
            private String mainSku;
        }
    }
}
